# part1 基础部分

"""
'''
basic- 7  特殊的数字

问题描述
　　153是一个非常特殊的数，它等于它的每位数字的立方和，即153=1*1*1+5*5*5+3*3*3。
    编程求所有满足这种条件的三位十进制数。
输出格式
　　按从小到大的顺序输出满足条件的三位十进制数，每个数占一行。
'''

for i in range(100, 1000):
    s = str(i)
    if int(s[0])**3 + int(s[1])**3 + int(s[2]) **3 == i:
        print(i)
"""

"""
'''
basic -8 回文数
     
问题描述
　　1221是一个非常特殊的数，它从左边读和从右边读是一样的，编程求所有这样的四位十进制数。
输出格式
　　按从小到大的顺序输出满足条件的四位十进制数。 
'''
for i in range(1000, 10000):
    s = str(i)
    if int(s[0])== int(s[3]) and int(s[1]) ==int(s[2]):
        print(i)

for i in range(1000, 10000):
    s = str(i)
    if s == s[::-1]: #这一行检查字符串 s 是否等于其自身的反向字符串。
                    # s[::-1] 是Python中的切片操作，用于反转字符串。
                    # 如果 s 是回文，那么它应该与其自身的反向字符串相同。
        print(i)
"""

"""
'''
basic -9  特殊回文数

问题描述
　　123321是一个非常特殊的数，它从左边读和从右边读是一样的。
　　输入一个正整数n， 编程求所有这样的五位和六位十进制数，满足各位数字之和等于n 。
输入格式
　　输入一行，包含一个正整数n。
输出格式
　　按从小到大的顺序输出满足条件的整数，每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
 
'''
n = int(input())
list1 = []
for i in range(10000,1000000):
    x = str(i)
    if x == x[::-1]:
        list1.append(x)
for j in list1:
    y = list(map(int,j))
    # : 将回文数字转换为整数列表。
    # 例如，如果j是'88888888'，那么y将是[8, 8, 8, 8, 8, 8, 8, 8]。
    # y为 [8, 9, 9, 9, 9, 8]
    #     [9, 8, 9, 9, 8, 9]
    #     [9, 9, 8, 8, 9, 9]
    if sum(y) == n:
        print(j)
"""

"""
'''
basic -10 十进制转十六进制
     
hex() 10->16
bin() 10->2
oct() 10->8

问题描述
　　十六进制数是在程序设计时经常要使用到的一种整数的表示方式。
    它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号，分别表示十进制数的0至15。
    十六进制的计数方法是满16进1，所以十进制数16在十六进制中是10，而十进制的17在十六进制中是11，
    以此类推，十进制的30在十六进制中是1E。
　　给出一个非负整数，将它表示成十六进制的形式。
输入格式
　　输入包含一个非负整数a，表示要转换的数。0<=a<=2147483647
输出格式
　　输出这个整数的16进制表示
样例输入
30
样例输出
1E 
'''
# 在Python中，hex() 是一个内置函数，用于将整数转换为十六进制字符串表示。
# 假设 a 是一个整数，那么 hex(a) 会返回一个字符串，表示 a 的十六进制表示。
# 例如：
# a = 255
# b = hex(a)
# print(b)  # 输出: '0xff'
# 在上面的例子中，整数 255 被转换为了十六进制字符串 '0xff'。
# 注意，返回的字符串总是以 '0x' 开头，表示它是一个十六进制数。
#
# 如果你想要去除前缀 '0x'，可以使用字符串切片：

# b = hex(a)[2:]
# print(b)  # 输出: 'ff'
a = int(input())
a = hex(a)[2:]
print(a.upper())
"""

"""
'''
basic -11 十六进制转十进制
     
问题描述
　　从键盘输入一个不超过8位的正的十六进制数字符串，将它转换为正的十进制数后输出。
　　注：十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
提交代码 
'''
a = int(input(),16) #将字符串解释为十六进制数
print(a)
"""

"""
'''
basic -12 十六进制转八进制
     
问题描述
　　给定n个十六进制正整数，输出它们对应的八进制数。

输入格式
　　输入的第一行为一个正整数n （1<=n<=10）。
　　接下来n行，每行一个由0~9、大写字母A~F组成的字符串，表示要转换的十六进制正整数，每个十六进制数长度不超过100000。
输出格式
　　输出n行，每行为输入对应的八进制正整数。
【注意】
　　输入的十六进制数不会有前导0，比如012A。
　　输出的八进制数也不能有前导0。
样例输入
　　2
　　39
　　123ABC
样例输出
　　71
　　4435274
　　【提示】
　　先将十六进制数转换成某进制数，再由某进制数转换成八进制。
'''
n = int(input())
result =[]
for i in range(n):
    a = int(input(),16)  # 16转10
    a = oct(a)[2:]       # 10转8
    result.append(a)
for j in range(n):
    print(result[j])
"""

'''
basic -13  数列排序
     
问题描述
　　给定一个长度为n的数列，将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
　　第一行为一个整数n。
　　第二行包含n个整数，为待排序的数，每个整数的绝对值小于10000。
输出格式
　　输出一行，按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
'''
n = int(input())
list1 = list(map(int, input().split()))
list1.sort()
for i in range(n):
    print(list1[i], end=' ')























































